﻿using System;
using Lucas.Wendell.PI.DAO;
using Lucas.Wendell.PI.Interface;
using Lucas.Wendell.PI.Model;
using Lucas.Wendell.PI.Model.Context;

namespace Lucas.Wendell.PI.Repository
{
    public class UsuarioRepository : IUsuarioRepository
    {
        private readonly NetImobiliariaContext _dbContext;

        public UsuarioRepository(NetImobiliariaContext dbContext)
        {
            _dbContext = dbContext;
        }

        public bool Save(Usuario usuario)
        {
            //não há necessidade de abrir transaction pois o SaveChanges() já trata isso
            try
            {
                new UsuarioDAO().SaveOrUpdate(_dbContext, usuario);

                _dbContext.SaveChanges();
                return true;
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                _dbContext.Dispose();
            }
        }

        public Usuario GetById(int id)
        {
            return new UsuarioDAO().GetById(_dbContext, id);
        }

        public Usuario GetByLogin(string login)
        {
            //using (ISession session = _session.OpenSession())
            //{
            //    return new UsuarioDAO().GetByLogin(session, login);
            //}
            return new Usuario();
        }

        public Usuario GetByLoginAndSenha(string login, string senha)
        {
            //using (ISession session = _session.OpenSession())
            //{
            //    return new UsuarioDAO().GetByLoginAndSenha(session, login, senha);
            //}
            return new Usuario();
        }
    }
}
